import { get, set } from '@renderer/composables/localStorage'
import { CacheKeyEnum } from '@renderer/enums/cacheEnum'
import { defineStore } from 'pinia'
import { computed, ref } from 'vue'

// 你可以任意命名 `defineStore()` 的返回值，但最好使用 store 的名字，同时以 `use` 开头且以 `Store` 结尾。
// (比如 `useUserStore`，`useCartStore`，`useProductStore`)
// 第一个参数是你的应用中 Store 的唯一 ID。

//Setup Store
export const useUserStore = defineStore('user', () => {
  const token = ref('318-Macos@20240918144445416-user')
  const userInfo = ref({})

  const setToken = (tokenVal: string) => {
    set(CacheKeyEnum.TOKEN_KEY, tokenVal)
    console.log(token)

    token.value = tokenVal
  }

  const setUserInfo = (info: Recordable) => {
    set(CacheKeyEnum.USER_INFO_KEY, info)
    userInfo.value = info
  }

  const getToken = computed(() => {
    return token.value || get(CacheKeyEnum.TOKEN_KEY) || null
  })

  const getUserInfo = computed(() => {
    return userInfo.value || get(CacheKeyEnum.USER_INFO_KEY) || null
  })

  const login = async () => {}

  return {
    getUserInfo,
    getToken,
    login,
    setToken
  }
})
